{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "\n",
    "# some_file.py\n",
    "import sys\n",
    "sys.path.insert(0, '../src/easyesn/')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using Numpy backend.\n"
     ]
    }
   ],
   "source": [
    "from easyesn import SpatioTemporalESN\n",
    "from easyesn.optimizers import GridSearchOptimizer\n",
    "from easyesn import helper as hlp\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from scipy.ndimage.filters import convolve\n",
    "\n",
    "np.random.seed(42)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "inputLength = 5000\n",
    "size = 50\n",
    "\n",
    "data = np.linspace(0, 20*np.pi, inputLength)\n",
    "data = np.repeat(data, size*size).reshape(-1, size, size)\n",
    "\n",
    "freq1 = np.tile(np.random.rand(size, size), (inputLength, 1, 1))*2+1 \n",
    "freq2 = np.tile(np.random.rand(size, size), (inputLength, 1, 1))*2+1\n",
    "\n",
    "inputData = np.sin(freq1*data).reshape(-1, size, size)\n",
    "outputData = np.cos(freq1*data).reshape(-1, size, size)\n",
    "\n",
    "filter1 = np.array([[-1,-1,-1],\n",
    "                   [-1,9,-1],\n",
    "                   [-1,-1,-1]])/9.0\n",
    "\n",
    "for i in range(inputLength):\n",
    "    outputData[i, :, :] = convolve(outputData[i, :, :], filter1)\n",
    "\n",
    "trainingInput = inputData[:int(inputLength*0.7)]\n",
    "validationInput = inputData[int(inputLength*0.3):]\n",
    "\n",
    "trainingOutput = outputData[:int(inputLength*0.7)]\n",
    "validationOutput = outputData[int(inputLength*0.3):]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "esn = SpatioTemporalESN(inputShape=(size, size), filterSize=3, stride=1, borderMode=\"mirror\", averageOutputWeights=True,\n",
    "                        n_reservoir=100, regressionParameters=[1e-2], leakingRate=0.2, spectralRadius=0.8, solver=\"lsqr\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100% (2500 of 2500) |#############################################################| Elapsed Time: 0:26:44 Time: 0:26:44\n"
     ]
    }
   ],
   "source": [
    "esn.fit(trainingInput, trainingOutput, transientTime=10, verbose=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100% (2500 of 2500) |#############################################################| Elapsed Time: 0:17:57 Time: 0:17:57\n"
     ]
    }
   ],
   "source": [
    "prediction = esn.predict(validationInput, transientTime=0, verbose=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nOw6cAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1584d6dcdd8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#plot the temporal evolution of one single point\n",
    "plt.plot(prediction[:, 15, 15])\n",
    "plt.plot(validationOutput[:, 15, 15])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.22894364617900703"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#show MSE of entire field\n",
    "np.mean((prediction-validationOutput)**2, axis=None)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.65123819460806864"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#show NRMSE of entire field\n",
    "MSE = np.mean((prediction-validationOutput)**2, axis=None)\n",
    "NMSE = np.mean((np.mean(trainingOutput)-validationOutput)**2, axis=None)\n",
    "np.sqrt(MSE/NMSE)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
